package com.ijpay.wxpay.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "订单状态流转接口-请求报文",value = "订单状态流转接口-请求报文")
public class OrderStatusUpdateReqVO {

    /**
     * 订单ID
     */
    @NotBlank(message = "订单ID不能为空")
    @ApiModelProperty(notes = "订单ID",required = true,example = "",position = 1)
    private String orderId;

    /**
     * 000-待支付、001-已取消、002-待服务、003-服务中、004-已完成、005-已退款
     */
    @NotBlank(message = "订单当前状态不能为空")
    @ApiModelProperty(notes = "订单前状态 000-待支付、001-已取消、002-待服务、003-服务中、004-已完成、005-已退款、006-已评价,007-退款中",required = true,example = "",position = 2)
    private String preStatus;

    /**
     * 000-待支付、001-已取消、002-待服务、003-服务中、004-已完成、005-已退款
     */
    @NotBlank(message = "订单目标状态不能为空")
    @ApiModelProperty(notes = "订单目标状态 000-待支付、001-已取消、002-待服务、003-服务中、004-已完成、005-已退款",required = true,example = "",position = 3)
    private String targetStatus;
    /**
     * 订单流转时间
     */
    @ApiModelProperty(notes = "订单流转时间 yyyyMMddHHmmss ",required = true,example = "",position = 4)
   // @Length(min = 14,max = 14,message = "订单流转时间格式错误")
    //@NotNull(message = "订单流转时间不能为空")
    private String flowTime;
    /**
     * 订单流转备注说明
     */
    @ApiModelProperty(notes = "订单流转备注说明",required = true,example = "",position = 5)
    private String remark;

    @ApiModelProperty(notes = "订单支付实体 订单目标状态0002时不能为空 ",required = false,example = "",position = 6)
    private OdrOrderPayReqVO odrOrderPay;

    @ApiModelProperty(notes = "订单支付回退实体 订单目标状态0005时不能为空",required = false,example = "",position = 7)
    private OdrOrderRefundReqVO odrOrderRefund;

    @ApiModelProperty(notes = "用户id",required = false,example = "",position = 8)
    private String userId;
    @ApiModelProperty(notes = "用户名称",required = false,example = "",position = 9)
    private String userName;

}
